import Vue from 'vue';

import '@/utils/tools';
import Cookies from 'js-cookie';

import 'normalize.css/normalize.css'; // a modern alternative to CSS resets

import '@/styles/element-variables.scss';
import Element from 'element-ui';

import '@/styles/index.scss'; // global css

import App from './App';
import router from './router';
import store from './store';

import '@/icons'; // icon
import '@/permission'; // permission control
import '@/utils/error-log'; // error log
import './utils/car_city'; //车牌号对应归属地及城市JSON带简码
import './utils/sort'; //排序

import * as filters from './filters'; // global filters

import VueTinymce from '@packy-tang/vue-tinymce';
import tinymce from 'tinymce';

import Lang from '@/components/Lang';
import i18n from '@/i18n';
Vue.component('Lang', Lang)
Vue.prototype.$tinymce = tinymce
Vue.use(VueTinymce)

import {
  VueJsonp
} from 'vue-jsonp';
Vue.use(VueJsonp)

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
// mockjs模块把XMLHttpRequest覆盖拦截了，会导致对象属性访问不到 npm uninstall mockjs 删除该模块依赖
// 隐藏  vue.config.js   before: require('./mock/mock-server.js')
//隐藏  src/main.js  当前代码
// if (process.env.NODE_ENV === 'production') {
// 	const { mockXHR } = require('../mock')
// 	mockXHR()
// }
Element.Dialog.props.closeOnClickModal.default = false // 全局设置不点击model关闭弹框
// console.log(Element.Dialog)
Vue.use(Element, {
  size: Cookies.get('size') || 'medium', // set element-ui default size
  i18n: (key, value) => i18n.t(key, value)
})

// register global utility filters
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})
Vue.config.productionTip = false

var vue = new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
});
window.vue = vue;
